package pwd.allen.behavior.visitor;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * 对象结构角色
 * 是一个包含元素角色的容器，提供让访问者对象遍历容器中的所有元素的方法
 * 可以结合迭代器模式
 *
 * @author 门那粒沙
 * @create 2021-05-23 8:23
 **/
public class ObjectStructure {
    private List<Element> list = new ArrayList<Element>();
    public void accept(Visitor visitor) {
        Iterator<Element> i = list.iterator();
        while (i.hasNext()) {
            ((Element) i.next()).accept(visitor);
        }
    }
    public void add(Element element) {
        list.add(element);
    }
    public void remove(Element element) {
        list.remove(element);
    }
}
